/**
 * 
 */
package kr.co.insoft.core.repository.configration.vender;

import java.util.List;

import kr.co.insoft.core.model.configration.vender.VenderEntityModel;
import kr.co.insoft.core.model.configration.vender.VenderTypeEntityModel;
import kr.co.insoft.core.model.paging.PagingModel;
import kr.co.insoft.framework.exceptions.RepositoryException;

/**
 * @author skpark
 * 
 */
public interface VenderRepository {

	/**
	 * Vender 목록 / pagingModel 검증
	 * 
	 * @param pagingModel
	 * @return
	 * @throws RepositoryException
	 */
	public List<VenderEntityModel> getLists(PagingModel pagingModel)
			throws RepositoryException;

	/**
	 * Vender 전체 카운트 / pagingModel 검증
	 * 
	 * @param pagingModel
	 * @return
	 * @throws RepositoryException
	 */
	public int getTotalCount(PagingModel pagingModel)
			throws RepositoryException;

	/**
	 * Vender 목록
	 * 
	 * @param venderEntityModel
	 * @return
	 * @throws RepositoryException
	 */
	public List<VenderEntityModel> getList(VenderEntityModel venderEntityModel)
			throws RepositoryException;

	/**
	 * Vender
	 * 
	 * @param venderEntityModel
	 * @return
	 * @throws RepositoryException
	 */
	public VenderEntityModel getVender(VenderEntityModel venderEntityModel)
			throws RepositoryException;

	/**
	 * Vender 생성
	 * 
	 * @param venderEntityModel
	 * @throws RepositoryException
	 */
	public void createVender(VenderEntityModel venderEntityModel)
			throws RepositoryException;

	/**
	 * Vender 수정
	 * 
	 * @param venderEntityModel
	 * @throws RepositoryException
	 */
	public void editVender(VenderEntityModel venderEntityModel)
			throws RepositoryException;

	/**
	 * Vender 삭제
	 * 
	 * @param venderEntityModel
	 * @throws RepositoryException
	 */
	public void removeVender(VenderEntityModel venderEntityModel)
			throws RepositoryException;

	/**
	 * Vender Type 생성
	 * 
	 * @param venderTypeEntityModel
	 * @throws RepositoryException
	 */
	public void addVenderType(VenderTypeEntityModel venderTypeEntityModel)
			throws RepositoryException;

	/**
	 * Vender Type 삭제
	 * 
	 * @throws RepositoryException
	 */
	public void deleteVenderType() throws RepositoryException;

	/**
	 * Vender Name 중복체크
	 * 
	 * @throws RepositoryException
	 */
	public int isExistsVenderName(VenderEntityModel venderEntityModel)
			throws RepositoryException;
}
